﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="SubscriptionInfo.cs" company="Scrum for Team System">
//   None
// </copyright>
// <summary>
//   The subscription.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace ScrumForTeamSystem.Setup.SfTSDeployment
{
    /// <summary>
    /// The subscription.
    /// </summary>
    public class SubscriptionInfo
    {
        #region Constructors and Destructors

        /// <summary>
        /// Initializes a new instance of the <see cref="SubscriptionInfo"/> class.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <param name="conditionString">The condition string.</param>
        /// <param name="deliveryPreferenceAddress">The delivery preference address.</param>
        /// <param name="deliveryPreferenceSchedule">The delivery preference schedule.</param>
        /// <param name="deliveryPreferenceType">The delivery preference type.</param>
        /// <param name="device">The device.</param>
        /// <param name="eventType">The event type.</param>
        /// <param name="subscriber">The subscriber.</param>
        /// <param name="tag">The tag.</param>
        /// <param name="isScrumSubscription">if set to <c>true</c> [is scrum subscription].</param>
        public SubscriptionInfo(
            int id, 
            string conditionString, 
            string deliveryPreferenceAddress, 
            string deliveryPreferenceSchedule, 
            string deliveryPreferenceType, 
            string device, 
            string eventType, 
            string subscriber, 
            string tag,
            bool isScrumSubscription)
        {
            this.Id = id;
            this.ConditionString = conditionString;
            this.DeliveryPreferenceAddress = deliveryPreferenceAddress;
            this.DeliveryPreferenceSchedule = deliveryPreferenceSchedule;
            this.DeliveryPreferenceType = deliveryPreferenceType;
            this.Device = device;
            this.EventType = eventType;
            this.Subscriber = subscriber;
            this.Tag = tag;
            this.IsScrumSubscription = isScrumSubscription;
        }

        #endregion

        #region Properties

        /// <summary>
        /// Gets ConditionString.
        /// </summary>
        public string ConditionString { get; private set; }

        /// <summary>
        /// Gets or sets DeliveryPreferenceAddress.
        /// </summary>
        public string DeliveryPreferenceAddress { get; set; }

        /// <summary>
        /// Gets or sets DeliveryPreferenceSchedule.
        /// </summary>
        public string DeliveryPreferenceSchedule { get; set; }

        /// <summary>
        /// Gets or sets DeliveryPreferenceType.
        /// </summary>
        public string DeliveryPreferenceType { get; set; }

        /// <summary>
        /// Gets or sets Device.
        /// </summary>
        public string Device { get; set; }

        /// <summary>
        /// Gets or sets EventType.
        /// </summary>
        public string EventType { get; set; }

        /// <summary>
        /// Gets or sets Id.
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Gets Subscriber.
        /// </summary>
        public string Subscriber { get; private set; }

        /// <summary>
        /// Gets or sets Tag.
        /// </summary>
        public string Tag { get; set; }

        public bool IsScrumSubscription
        {
            get; 
            set;
        }

        #endregion
    }
}